package com.kiyuumirai.utils.util;

import com.kiyuumirai.utils.enums.CodeEnum;
import com.kiyuumirai.utils.model.vo.ResultVO;

/**
 * @author MirAi
 * @description 表现层结果对象工厂
 * @date 2020/11/30 16:26
 */
public final class ResultFactory {

    /**
     * 携带数据的成功构造器
     *
     * @return 携带数据的成功结果集
     */
    public static ResultVO success(Object data) {
        ResultVO resultVO = new ResultVO();
        resultVO.setData(data);
        return resultVO;
    }

    /**
     * 失败构造器
     *
     * @param codeEnum 状态枚举
     * @return 失败结果集
     */
    public static ResultVO fail(CodeEnum codeEnum) {
        ResultVO resultVO = new ResultVO();
        resultVO.setCode(codeEnum.getCode());
        resultVO.setMessage(codeEnum.getMessage());
        return resultVO;
    }

    /**
     * 失败构造器
     *
     * @param code 状态码
     * @param message 状态描述
     * @return 失败结果集
     */
    public static ResultVO fail(Integer code, String message) {
        ResultVO resultVO = new ResultVO();
        resultVO.setCode(code);
        resultVO.setMessage(message);
        return resultVO;
    }
}
